package com.norman.sorry.core.cards;

import java.util.Collection;
import java.util.Map;

import com.norman.sorry.core.moves.IMove;
import com.norman.sorry.core.pieces.IPiece;
import com.norman.sorry.core.players.IPlayer;
import com.norman.sorry.core.tiles.ILinkedTile;

/**
 * The class representation of the three card. This card allows the player to
 * move any game piece three tiles forward.
 * 
 * @author Brian Norman
 * @version 0.0.1 beta
 * @since 0.0.1 beta
 */
public class Three extends AbstractCard {

   /**
    * Definition of the constant integer three.
    */
   public static final int THREE = 3;

   /**
    * {@inheritDoc}
    * 
    * Returns the moves of each game piece moving three tiles forward that can.
    * 
    * @see com.norman.sorry.core.cards.ICard#getMoves(IPlayer, Map)
    */
   @Override
   public Collection<IMove> getMoves(IPlayer player, Map<IPiece, ILinkedTile> pieces) {
      return getMoves(player, pieces, THREE);
   }

}
